#ifndef FILE__HPP
#define FILE__HPP
#include <map>
#include <cstring>
#include <sstream>
#include <string>
#include <vector>
#include <iostream>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <memory>

class _File{
private:
    char* text;  // 文件内容指针
    int size;  // 文件内容大小
    FILE* file;  // 文件描述符
    void _fclose();
public:
    _File(){
        file=nullptr;
        text=nullptr;
    }
    ~_File(){
        if(text!=nullptr){
            delete[] text;
        }
        
        if(file!=nullptr){
            _fclose();
        }
    }

    int _fopen(const char* path);
    int _read_all(const char* path);
    // int _read_n(char* buf,int buf_size);
    int _read_n(const char* path,char* buf,int buf_size,int &label,int &return_size);
    char* get_text(){
        return text;
    }
    int get_size(){
        return size;
    }
};

int _Range_read(const char* path,int range_1,char* buf,int buf_size);

#endif 